home *** CD-ROM | disk | FTP | other *** search
- --------------------------------------------------------------------------
- !Numeric (v1.03) -- © Graham Hick, 1995
- --------------------------------------------------------------------------
-
- === 1. Introduction ======================================================
-
- This program is a combination of my previous programs !Integrate (v1.03)
- and !Diff (v1.01), which, as you might expect, allow you to calculate
- integrals of functions on bounded intervals, and also derivatives of
- functions, at a point. It also contains modules for solution of equations
- (Newton-Raphson method) and summation of series.
-
- To use the program, click Menu on the icon-bar icon, and select the part
- of the program you want to use. Type the function and relevant value(s)
- into the boxes, and then click on the "Calculate" button (or press Enter
- when in the last writable icon) to do the calculation. All answers are
- given to 5 significant figures.
-
-
- === 2. Expression syntax =================================================
-
- Because the program uses BASICs EVAL function, the function and values
- must be in a form that BASIC can understand, e.g.
-
- 3*x rather than 3x
- 1/(cos x) rather than sec x
- (sin x)^2 rather than sin²x
-
- Upper or lower case can be used throughout. The constants 'Pi' and 'e' can
- be used in the function or values - just type 'pi' or 'e' respectively.
- Also, factorials can be calculated, by typing 'FNfact(n)' for n!.
-
-
- === 3. Notes on calculation ==============================================
-
- 3.1 Integration
-
- Numerical integration is performed using "Simpson's Rule". The number
- of strips used is given in the options window (see later). Remember
- that if you want something sensible to happen, make sure your function
- is integrable. If you try and integrate 1/x from -1 to 1, you're
- asking for trouble. Trapping this kind of thing is inherently very
- difficult in a numerical system, since it's not possible to sample
- every point in the domain. If some sort of singularity happens, the
- program may or may not find it, depending on exactly where the sample
- points fall. Try integrating 1/x from -1 to 1.001, and you should see
- what I mean.
-
- 3.2 Differentiation
-
- The derivative at a point is found by calculating the slope of closer
- and closer interpolation lines. It is now pretty robust, and
- pathological things like the perennial favourite sin(1/x) should
- always be handled correctly. If "--" is given as the answer, the
- derivative doesn't exist - for example f'(0) where f(x) = abs(x).
-
- 3.3 Summation
-
- The sum is calulated how you might expect - by adding up all the
- terms. You can put "inf" as the upper limit, to calculate an infinite
- sum. As with differentiation, if "-" is given as the answer, the sum
- does not converge. Note the factorial function described in section 1.
-
- 3.4 Solution
-
- Given an initial "guess" the iterative Newton-Raphson method is one of
- the best ways of finding a solution to an equation of the form
- f(x) = 0. For instance, to find the cube root of 7, give f(x) as
- x^3 - 7. Note that only real solutions are found - and you don't
- always get an answer when f(x) > 0 around the expected root (for
- example, try f(x) = x^2).
-
-
- === 4. Options ===========================================================
-
- The Options window allows you to customize some of the features of the
- program:
-
- 4.1 Initial Windows
-
- Firstly, the windows to be opened on startup can be selected in the
- top section of the window.
-
- 4.2 Accuracy settings
-
- More usefully, perhaps, you can set various threshold values used in
- various bits of the program:
-
- 4.2.1 "Snap to zero" exponent
-
- This number represents the smallest number not to be pulled to
- zero. Because of the way floating point works, you sometimes find
- (although not so much with BASIC64) that an expected answer of
- zero will actually come out as something like 1.27E-9, which you
- don't want. The default value of this parameter is -8, meaning
- that anything with absolute value less than 1E-8 will be shown as
- zero.
-
- 4.2.2 Integration strips
-
- The number of strips to use when applying Simpson's Rule to find
- an integral. The default is 100.
-
- 4.2.3 Derivative convergence exponent
-
- When calculating a derivative, the program stops when two
- successive approximations come within a certain distance of each
- other. The default value is 1E-10 - i.e. exponent -10.
-
- 4.2.4 Summation convergence exponent
-
- Similarly, this is the distance that two successive approximations
- must come within, in order for an infinite sum calculation to
- stop. The default is -7.
-
- 4.2.5 Solution convergence exponent
-
- Finally, the same thing for the Newton-Raphson calculation. The
- default is -8.
-
- 4.3 Saving or ignoring the changes
-
- Press the Cancel button to close the window and forget any changes
- made to the settings since it was opened. Press the Close button to
- update the settings, and press Save to also save them to disc (so they
- will be loaded next time).
-
-
- === 5. Misc program notes ================================================
-
- 5.1 3D templates
-
- This release only contains 3D-style templates, so it only works
- completely right in RISC OS 3.10 or later. It should, however, still
- work OK in RISC OS 2, but the writable icons may look too big. I'm
- sorry about this, but I found developing two sets of virtually
- identical templates too much of a pain. If you don't like this, then
- please tell me!
-
- 5.2 Hi-res sprites
-
- If you are in a high-res mode (i.e. 1:1 pixel aspect ratio) when the
- program starts, it will load high-resolution versions of the sprites
- which it uses. As I can't use all screen modes (I only have a VGA
- monitor) and I haven't tested it with third-party screen modes (such
- as those provided by whizzy graphics cards) I can't guarantee that
- this works with your set-up. If it doesn't, then please let me know,
- and tell me what screen mode(s) you are using, so I can figure
- something out.
-
- 5.3 BASIC64
-
- If the operating system version is >= 3, Numeric will attempt to use
- BASIC64, which should be in the System: path. This gives far higher
- accuracy than the usual BASIC.
-
-
- === 6. Version history ===================================================
-
- 1.00 (Date unknown)
-
- * First release version, with Integrate and Diff integrated (sorry...)
- into one package.
-
- 1.01 (15 Apr 1994)
-
- * Added Newton-Raphson solver, and summation.
- * Changed window layouts slightly.
- * Wrote better(?) documentation.
- * Added 3D templates and new sprites.
-
- 1.02 (21 Sep 1994)
-
- * Revised the templates (thanks to Colin Turnbull for some helpful(?)
- comments on this!).
- * Nicer icon-bar menu.
- * Fixed cursor up/down bugs.
-
- 1.03 (?? Apr 1994)
-
- * New app icon.
- * Added options window and file.
- * Added interactive help support.
- * Changed to BASIC64.
- * Improved differentiation routine.
- * Added infinite series capability.
- * Improved the error handlers.
- * Expanded and reformatted this help file.
-
-
- === 7. Future changes ====================================================
-
- * I'd like to be able to do integration over unbounded intervals. This
- should be possible, by testing for convergence with repeated
- approximations.
-
- * Do a pre-parser, to take into account mathematical notation (as
- opposed to BASIC's more limited format). Alternatively I may abandon
- EVAL altogether, and write a completely new parser (It's a bit of a
- kludge at the moment, as you might notice...). But then again, I might
- not bother...
-
-
- === 8. Copyright? ========================================================
-
- This program is "Freeware". As far as I am concerned, this means that you
- can distribute it to anyone and everyone, PROVIDING that all files within
- the !Numeric directory are included in their original form, and you don't
- make any profit from distribution.
-
- If you feel that you could do better, please send your improvements or
- suggestions to me (see below) rather than distributing them all over the
- place, as this can lead to large amounts of confusion.
-
-
- === 9. Contact ===========================================================
-
- Well done. You have found the interesting bit at the end of the
- documentation - how to insult the author. Seriously, software developers,
- whether professional or unpaid, always desperately need feedback from
- users. So if you have ANY comments, suggestions, improvements or bugs to
- report, then PLEASE PLEASE PLEASE do not hesitate to get in touch with me.
-
- And here's how:
-
- Either at home
-
- 33 Ashley Piece
- Ramsbury
- Marlborough
- Wiltshire
- SN8 2QE
-
- Tel: Marlborough (01672) 20564
- [this will change to 520564 some time during June 1995]
-
- or at college (until July 1995 at least)
-
- 22 Ridgefield Road
- Oxford
- OX4 3BT
-
- Tel: Oxford (01865) 798151
- [if this doesn't work, leave a message on (01865) 272727]
-
- Fax: Oxford (01865) 272705
-
- E-mail: graham.hick@keble.oxford.ac.uk
- m92gjh@ecs.ox.ac.uk
-
- All communication WILL be replied to. Thank you for your attention.
-
- --------------------------------------------------------------------------
- !Numeric (v1.03) -- © Graham Hick, 1995
- --------------------------------------------------------------------------
-